<?php
namespace Chat\Push;

use \GatewayWorker\Lib\Gateway;
#require_once __DIR__ . '/../../../sockets.php';

/**
 * 
 */
class Worker
{

    private $user_ids = [];

    public function __construct()
    {
        // require_once __DIR__ . '/../../index.php';
    }

    public static function onConnect($client_id)
    {
        // 向当前client_id发送数据 
        Gateway::sendToClient($client_id, json_encode(array(
            'event'     => 'init',
            'client_id' => $client_id
        )));
        // 向所有人发送
        // Gateway::sendToAll("$client_id login\r\n");
    }
    
    public static function onMessage($client_id, $data)
    {
        if($data){
            $data = json_decode($data, true);
            if($data){
                switch ($data['event']) {
                    case 'ping':
                        Gateway::sendToClient($client_id, json_encode(['event'=>'pong', 'say_id'=>$data['say_id']]));
                        break;
                }
            }
        }
        // $model = D('Message');
        // $data = json_decode($data, true);
        // if($data['event']=='init'){
        //     $user_id = $data['uid'];
        // }else{
        //     $user_id = $this->user_ids[$client_id];
        // }
        // if($data){
        //     switch ($data['event']) {
        //         case 'init':
        //             $this->user_ids[$client_id] = $data['uid'];
        //             break;
        //         case 'say':
        //             $to_uid = $data['to_uid'];
        //             $to_client_id = array_search($this->user_ids, $to_uid);
        //             // 记录库
        //             $addRes = $model->addMsg($user_id, $to_uid, $data['content'], $data['msg_type']);
        //             if($addRes['status'] == 1){
        //                 if($to_client_id!==false){
        //                     // 在线发送消息
        //                     Gateway::sendToClient($to_client_id, json_encode(['event'=>'msg', 'from_uid'=>$user_id, 'msg_type'=>$data['msg_type'], 'time'=>time(), 'content'=>$data['content']]));
        //                 }else{
        //                     // 发送模板消息
        //                     // TODO
        //                 }
        //                 if($data['msg_type'] == 'image'){
        //                     Gateway::sendToClient($client_id, json_encode(['event'=>'say_res', 'status'=>1, 'say_id'=>$data['say_id'], 'time'=>time(), 'img'=>1]));
        //                 }else{
        //                     Gateway::sendToClient($client_id, json_encode(['event'=>'say_res', 'status'=>1, 'say_id'=>$data['say_id'], 'time'=>time()]));
        //                 }
        //             }else{
        //                 Gateway::sendToClient($client_id, json_encode(['event'=>'say_res', 'status'=>0, 'say_id'=>$data['say_id']]));
        //             }
        //             break;
        //         default:
        //             break;
        //     }
        // }
        // $model->db()->close();
    }

   /**
    * 当用户断开连接时触发
    * @param int $client_id 连接id
    */
   public static function onClose($client_id)
   {
       // 向所有人发送 
       // GateWay::sendToAll("$client_id logout\r\n");
   }
}